package br.com.sms.enuns;

public enum TipoFuncionalidade {
	
	ADMIN_GERAL(1, "Administrador Geral"),
	ADMINISTRAR(2, "Administrar"),
	IMPORTAR_ARQUIVO(3, "Importar Arquivo"),
	CRIAR_MENSAGEM(4, "Criar Mensagem"),
	CRIAR_MALA_DIRETA(5, "Criar Mala Direta"),
	ENVIAR_MALA_DIRETA(6, "Enviar Mala Direta"),
	GERAR_ETIQUETA(7, "Gerar Etiqueta"); 
	
	private int codigo;
	private String descricao;
	
	private TipoFuncionalidade(int codigo, String descricao){
		this.codigo = codigo;
		this.descricao = descricao;
	}
	

	public static TipoFuncionalidade getTipoFuncionalidade(Integer codigo) {
		
		switch (codigo) {
		case 1:
			return ADMIN_GERAL;
		
		case 2:
			return ADMINISTRAR;
		
		case 3:
			return IMPORTAR_ARQUIVO;
			
		case 4:
			return CRIAR_MENSAGEM;
			
		case 5:
			return CRIAR_MALA_DIRETA;
			
		case 6:
			return ENVIAR_MALA_DIRETA;
		
		case 7:
			return GERAR_ETIQUETA;
		
		default:
			return null;
		}
	}
	
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	public static TipoFuncionalidade[] getTipos(){
		TipoFuncionalidade[] todosTipos = TipoFuncionalidade.values();
		
		TipoFuncionalidade[] tiposDisponiveis = new TipoFuncionalidade[todosTipos.length-1];
		int index = 0;
		for (int i=0; i < todosTipos.length; i++) {
			if(todosTipos[i] != ADMIN_GERAL){
				tiposDisponiveis[index] = todosTipos[i];
				index++;
			}
		}
		
		return tiposDisponiveis;
		
	}
	
}
